UPnP:InternetGatewayDevice:1 设备模板版本1.01,InternetGatewayDevice:1 Device Template Version 1.01
对应UPnP ™ 版本1.0
状态: 标准化的设备控制协议(DCP,Device Control Protocol)
日期: 2001年11月 12 日
© 1999-2001 UPnP™论坛的贡献成员。保留所有权利。
作者 |
公司 |
Prakash Iyer, Ulhas Warrier |
英特尔公司 |
表格目录
这個设备模板与UPnP™架构的1.0 版本兼容。
这個文档定义咯必需的根设备urn:schemas-upnp-org:device: InternetGatewayDevice。
InternetGatewayDevice 为互联网关设备控制协议(Internet Gateway Device Control
Protocol (DCP))的所有子设备和服务做咯封装。
互联网关(Internet Gateway)是位于家庭(residential)局域网(Local Area Network (LAN))和广域网(Wide Area Network (WAN))之间的“边缘”互联设备,是用来连接到互联网(Internet)的。网关可能是一個物理上独立的设备,也有可能是某台电脑上的一组UPnP 设备和服务模型的集合。这個版本的设备控制协议不考虑小型公司网络。不建议从家庭网络以外的地方来发现及访问这些服务,除非在设备中启用咯充分的认证、授权和访问控制机制,而那些东西不在当前的UPnP 架构中。
下面的图1 是一個通用的互联网关设备的概念图,该网关由一個或多個物理的广域网和局域网网卡(interfaces)组成。
图1:带有局域网和广域网网卡的InternetGatewayDevice
以下需求列表是已经确认那些适应网关设备控制协议中的设备和服务层次的互联网关能够满足的。
• InternetGatewayDevice 必须 支持1個广域网接口(interface),但是 可以 支持多个能够连接到互联网的物理广域网接口。
• InternetGatewayDevice 必须 支持1個局域网接口,但是 可以 支持多个能够连接到家庭网络的物理局域网接口。
可以将广域网接口和局域网接口(前面已提到过)放置在同一张物理的网卡(NIC)上。
• 每个广域网接口 必须 支持一個互联网连接,但是 可以 同时支持多个互联网连接。其中的每个连接在这个设备控制协议中都被表示成一個服务实例。
• InternetGatewayDevice 必须在所有时候都能在家庭网络里通过IP访问,以保持UPnP 兼容性。具体地说,对于在广域网一端拥有宽带调制解调器的网关来说,在以下情况下仍要保持 InternetGatewayDevice 可访问:
◦还没有为此设备配置广域网连接,或者并没有连接到广域网
◦在将调制解调器配置到与网络连接提供商(Internet service provider)的头端设备(head-end device)连接之前、之时及之后。
• 广域网一端的连接 必须 确保家庭局域网中的节点能够访问到互联网上的资源。一個网关 可以 支持 那种不提供互联网连接的 调制解调器和/或调制解调器到接入提供商的连接 –例如,通过简易老式电话服务(POTS)来拨号对某個提供家庭安全监控服务的服务商的调制解调器库(modem bank)进行访问。这种连接是在本個网关设备控制协议的范围及要求之外的。
在这個文档中,一個互联网连接指的是能够通过IP 对互联网接入服务提供商进行访问的连接。图2展示咯一個InternetGatewayDevice 中的设备及服务的层次关系。在InternetGatewayDevice 中,广域网一端的一個物理的调制解调器和局域网一端的一個连接接口/端口分别被表示成一個WANDevice 和一個LANDevice实例。取决于一個互联网关的硬件能力,在一個实际的网关设备控制协议描述文档中,可能會出现多個WANDevice 和/或LANDevice 的实例。虚拟连接接口–例如某個DSL 调制解调器上的虚电路(Virtual Circuits (VC)),是由一個或多個WANConnectionDevice 实例来表示的。此文档中提到的子设备和服务是由与此文档共同描述互联网关设备控制协议的那些文档来定义的。
图2: InternetGatewayDevice设备和服务的层次关系
以下的设备类型用来确认某個设备与本模板兼容:
urn:schemas-upnp-org:device:InternetGatewayDevice:1
那些暴露出urn:schemas-upnp-org:device: InternetGatewayDevice:1 类型的设备的产品必须为所有要求的嵌入设备和服务实现下表中所指定的最低版本。
设备类型(DeviceType) |
根(Root) |
必选(Req.)还是可选(Opt.)1 |
服务类型(ServiceType) |
必选(Req.)还是可选(Opt.)1 |
服务编号(Service ID)2 |
Layer3Forwarding:1 |
O |
L3Forwarding1 |
|||
由UPnP 制造商嵌入的非标准服务放在这里。 |
X |
待定(TBD) |
|||
WANDevice:1 |
R |
WANCommonInterfaceConfig:1 |
R |
WANCommonIFC1 |
|
由UPnP 制造商嵌入的非标准服务放在这里。 |
X |
待定 |
|||
WANConnectionDevice:1(一個WANDevice 实例可能包含一個或多個WANConnectionDevice 实例) |
R |
WANPOTSLinkConfig:1 |
对于POTS类型的调制解调器,是O |
WANPOTSLinkC1 |
|
WANDSLLinkConfig:1 |
对于DSL类型的调制解调器,是O |
WANDSLLinkC1 |
|||
WANCableLinkConfig:1 |
对于 Cable类型的调制解调器,是O |
WANCableLinkC1 |
|||
WANEthernetLinkConfig:1 |
对于以太网附加的调制解调器,是O |
WANEthLinkC1 |
|||
WANPPPConnection:1 |
对于支持PPP 连接的调制解调器,是R |
在一個WANConnectionDevice 中可能會有多個实例。多個实例的服务编号(ServiceIDs)是WANPPPConn1、WANPPPConn2、WANPPPConn3…… |
|||
WANIPConnection:1 |
对于支持 IP 连接的调制解调器,是R |
现在预想的是,一個WANConnectionDevice 中只會有一個实例。但是未来可能會支持多個实例。多個实例的服务编号将會是 WANIPConn1、WANIPConn2、WANIPConn3…… |
|||
由UPnP 制造商嵌入的非标准服务放在这里。 |
X |
待定 |
|||
LANDevice:1 |
O |
LANHostConfigManagement:1 |
O |
LANHostCfg1 |
|
由UPnP 制造商嵌入的非标准设备放在这里。 |
待定 |
X |
待定 |
待定 |
待定 |
1R = 必需, O = 可选, X = 非标准。
2前缀是urn:upnp-org:serviceId: 。
正如上表所显示的,此设备控制协议定义咯2 個连接(Connection)服务和4 個链路配置(LinkConfig)服务,以便兼容各种各样的广域网接口和连接类型。以下的表格简要地描述咯各个服务的用途。对此协议的一個实际实现中,只會将那些与当前网关设备相关的Connection 和 LinkConfig 服务实例化。
服务名字 |
服务描述 |
WANPPPConnection |
从网关发起的、被网关中继的或在网关中桥接的PPP连接 |
WANIPConnection |
从网关发起的、被网关中继的或在网关中桥接的IP连接 |
WANPOTSLinkConfig |
与一個普通旧电话服务(Plain Old Telephone Service (POTS))调制解调器上的广域网链路关联的配置参数 |
WANDSLLinkConfig |
与一個数字订阅链路(Digital Subscriber Link (DSL))调制解调器上的广域网链路关联的配置参数 |
WANCableLinkConfig |
与一個电缆(cable)调制解调器上的广域网链路关联的配置参数 |
WANEthernetLinkConfig |
与一個附加以太网的(Ethernet- attached)外部调制解调器(电缆或DSL)关联的配置参数。如果使用咯私有方法来发现及配置外部调制解调器,则建议以与调制解调器相关的LinkConfig 服务来表示,而不是使用这个服务。 |
Layer3Forwarding表示一個默认服务,它是WANConnectionDevice中的WAN{PPP/IP}Connection 的一個特定实例。WANCommonInterfaceConfig定义咯WANDevice 中的所有WAN{PPP/IP}Connection实例共有的变量和动作。另外,在一個WANConnectionDevice 中,可能會在特定的WAN*LinkConfig和 WAN**Connection 服务中存在依赖关系。
图 1 中的每个WANDevice 都可以看作一個物理的广域网接口的实例化。如果某個InternetGatewayDevice为UPnP 客户端提供咯多個广域网物理接口的话,则在一般情况下,其中的每一個都會在设备描述文件里被表示成一個单独的 WANDevice 。然而,在实际情况中可能會将 多個物理的广域网接口封装到同一個 WANDevice 中。举個例子,在那些使用非对称连接的程序中可能會这样,非对称连接的例子包括用卫星做下行链路、用简易老式电话服务做上行链路。另一個例子就是多個物理的广域网接口被封装到一個池中(pooled),并且被表示成一個设备。在这种情况下,像池中资源(pooled resources)的负载均衡这种东西将會对UPnP 客户端是透明的。
按照UPnP 架构版本1.0,WAN ** Connection 服务实例的最大个数是固定的,并且是在InternetGatewayDevice 描述文件里指明的。
一個WANDevice 提供一個WANCommonInterfaceConfig 服务,它封装的是与特定的广域网访问类型和多个 WAN ** Connection 服务实例之间共有的互联网访问相关的第1层(Layer 1)和第2层(Layer 2)属性。
网关设备也可能支持多個物理的局域网接口。它可能在家庭网络中支持多個独立的客户端节点的子网。每個 LANDevice – 在设备描述文件中以一個唯一设备名(Unique Device Name(UDN))来标识 –一般对应于 InternetGatewayDevice 上的一個物理的局域网接口(或端口)。然而,实际情况中,可能會将多個物理的局域网接口封装到同一個 LANDevice 中。如果两個桥接起来的局域网子网被表示成一個逻辑的局域网接口的话,就是这种情况。局域网中的那些设备可能會配置、发起和/或共享互联网连接。
InternetGatewayDevice 还可能支持在所有连接实例之间提供对三层数据包的变换和转发功能的管理和申请。这些功能目前是放置(modeled)在Layer3Forwarding服务中的。只与某個特定连接相关的三层数据包转发功能會放置在每個WAN ** Connection服务实例中。
<?xml version="1.0"?>
<root xmlns= "urn:schemas-upnp-org:device-1-0" >
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<URLBase>所有相对URLs 的基本URL</URLBase>
<device>
<deviceType>urn:schemas-upnp-
org:device:InternetGatewayDevice:1</deviceType>
<friendlyName>简短的用户可读的标题</friendlyName>
<manufacturer>制造商名字</manufacturer>
<manufacturerURL>制造商的网站的URL</manufacturerURL>
<modelDescription>较长的用户可读的标题</modelDescription>
<modelName>模型名字</modelName>
<modelNumber>模型编号</modelNumber>
<modelURL>模型网站的URL</modelURL>
<serialNumber>制造商的序列号</serialNumber>
<UDN>uuid:UUID</UDN>
<UPC>全局唯一产品编号</UPC>
<iconList>
<icon>
<mimetype>image/格式</mimetype>
<width>水平像素个数</width>
<height>竖直像素个数</height>
<depth>颜色深度</depth>
<url>图标的URL</url>
</icon>
<!-- 如果还有其它图标,则将XML写在这里 -->
</iconList>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-
org:service:Layer3Forwarding:1</serviceType>
<serviceId>urn:upnp-org:serviceId:L3Forwarding1</serviceId>
<SCPDURL>服务描述内容的URL</SCPDURL>
<controlURL>用来进行控制的URL</controlURL>
<eventSubURL>用来传递事件的URL</eventSubURL>
</service>
<!-- (如果有)其它由UPnP 制造商添加的服务的声明写在这里 -->
</serviceList>
<deviceList>
<device>
<deviceType>urn:schemas-upnp-org:device:WANDevice:1</deviceType>
<friendlyName>简短的用户可读的标题</friendlyName>
<manufacturer>制造商名字</manufacturer>
<manufacturerURL>制造商网站的URL</manufacturerURL>
<modelDescription>较长的用户可读的标题</modelDescription>
<modelName>模型名</modelName>
<modelNumber>模型编号</modelNumber>
<modelURL>模型网站的URL</modelURL>
<serialNumber>制造商的序列号</serialNumber>
<UDN>uuid:UUID</UDN>
<UPC>全局唯一产品编号</UPC>
<iconList>
<icon>
<mimetype>image/格式</mimetype>
<width>水平像素个数</width>
<height>竖直像素个数</height>
<depth>颜色深度</depth>
<url>图标的URL</url>
</icon>
如果还有其它图标,则将XML写在这里
</iconList>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-
org:service:WANCommonInterfaceConfig:1</serviceType>
<serviceId>urn:upnp-org:serviceId:WANCommonIFC1</serviceId>
<SCPDURL>服务描述内容的URL</SCPDURL>
<controlURL>控制页面的URL</controlURL>
<eventSubURL>事件通知页面的URL</eventSubURL>
</service>
<!-- 如果UPnP 制造商添加咯其它服务,则将声明写在这里 -->
</serviceList>
<deviceList>
<device>
<deviceType>urn:schemas-upnp-
org:device:WANConnectionDevice:1</deviceType>
<friendlyName>简短的用户可读的标题</friendlyName>
<manufacturer>制造商名字</manufacturer>
<manufacturerURL>制造商网站的URL</manufacturerURL>
<modelDescription>较长的用户可读的标题</modelDescription>
<modelName>模型名</modelName>
<modelNumber>模型编号</modelNumber>
<modelURL>模型网站的URL</modelURL>
<serialNumber>制造商的序列号</serialNumber>
<UDN>uuid:UUID</UDN>
<UPC>全局唯一产品编号</UPC>
<iconList>
<icon>
<mimetype>image/格式</mimetype>
<width>水平像素个数</width>
<height>竖直像素个数</height>
<depth>颜色深度</depth>
<url>图标的URL</url>
</icon>
如果还有其它图标,则将XML写在这里
</iconList>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-
<serviceId>urn:upnp-org:serviceId:WANPOTSLinkC1</serviceId>
<SCPDURL>服务描述内容的URL</SCPDURL>
<controlURL>控制页面的URL/controlURL>
<eventSubURL>事件通知页面的URL</eventSubURL>
</service>
<service>
<serviceType>urn:schemas-upnp-
<serviceId>urn:upnp-org:serviceId:WANPPPConn1</serviceId>
<SCPDURL>服务描述信息的URL</SCPDURL>
<controlURL>控制页面的URL</controlURL>
<eventSubURL>事件通知页面的URL</eventSubURL>
</service>
<!-- 如果UPnP 制造商添加咯嵌入的设备的话,则将描述写在这里 -->
</serviceList>
<deviceList>
</deviceList>
<presentationURL>简报内容(presentation)的URL</presentationURL>
</device>
<presentationURL>简报内容(presentation)的URL</presentationURL>
</deviceList>
</device>
<device>
<deviceType>urn:schemas-upnp-org:device:LANDevice:1</deviceType>
<friendlyName>简短的用户可读的标题</friendlyName>
<manufacturer>制造商名字</manufacturer>
<manufacturerURL>制造商网站的URL</manufacturerURL>
<modelDescription>较长的用户可读的标题</modelDescription>
<modelName>模型名</modelName>
<modelNumber>模型编号</modelNumber>
<modelURL>模型网站的URL</modelURL>
<serialNumber>制造商的序列号</serialNumber>
<UDN>uuid:UUID</UDN>
<UPC>全局唯一产品编号</UPC>
<iconList>
<icon>
<mimetype>image/格式</mimetype>
<width>水平像素个数</width>
<height>竖直像素个数</height>
<depth>颜色深度</depth>
<url>图标的URL</url>
</icon>
<!-- 如果有其它图标,则将XML写在这里 -->
</iconList>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-
org:service:LANHostConfigManagement:1</serviceType>
<serviceId>urn:upnp-org:serviceId:LANHostCfg1</serviceId>
<SCPDURL>服务描述内容的URL</SCPDURL>
<controlURL>控制页面的URL</controlURL>
<eventSubURL>事件通知页面的URL</eventSubURL>
</service>
<!-- 如果UPnP 制造商添加咯其它的服务,则将声明写在这里 -->
</serviceList>
<deviceList>
<!-- 如果UPnP 制造商添加咯其它嵌入的设备的话,将描述写在这里 -->
</deviceList>
<presentationURL>简报内容的URL</presentationURL>
</device>
<!-- 如果UPnP 制造商添加咯其它嵌入的设备的话,将描述写在这里 -->
</deviceList>
<presentationURL>简报内容的URL</presentationURL>
</device>
</root>
1 本工作委员会( Working Committee( WC ) )还没有为以上列表之外的接口类型定义链路配置服务。如果需要的话,可将这些东西实现为制造商私有的扩展。
2 实现者请注意:这個模板只表示一种设备类型 – 在这個例子中是一個POTS调制解调器。依实际的调制解调器的类型而定,请替换或添加与设备相关的服务名字。
3 实现者请注意:这個模板只表示一种连接类型 – 在这個例子中是一個拨号PPP 连接。依实际的连接类型而定,请替换或添加与设备相关的服务名字。
HxLauncher: Launch Android applications by voice commands